package co.com.colcomercio.util.genArchivos.object;

import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

public class ArchivoTXT {

	private String nombre;
	private String ruta;
	private String fecha;
	private String fechaGeneracion;
	public String getFechaGeneracion() {
		return fechaGeneracion;
	}
	public void setFechaGeneracion(String fechaGeneracion) {
		this.fechaGeneracion = fechaGeneracion;
	}
	private List<FilaTXT> filas;
	private java.io.File archivo;
	
	public String getRuta() {
		return ruta;
	}
	public void setRuta(String ruta) {
		this.ruta = ruta;
	}
	public String getNombre() {
		return nombre;
	}
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	public String getFecha() {
		return fecha;
	}
	public void setFecha(String fecha) {
		this.fecha = fecha;
	}
	public List<FilaTXT> getFilas() {
		return filas;
	}
	public void setFilas(List<FilaTXT> filas) {
		this.filas = filas;
	}
	
	public void addlementoAFila(DatoColumnaTXT columnaTXT, int fila, int columna)
	{
		if(getFilas() == null)
			setFilas(new ArrayList<FilaTXT>());
		
		if(getFilas().isEmpty())
			getFilas().add(fila, new FilaTXT());

		if(getFilas().size()-1 < fila)
			getFilas().add(fila, new FilaTXT());

		if(getFilas().get(fila).getColumnas() == null)
			getFilas().get(fila).setColumnas(new ArrayList<DatoColumnaTXT>());
		
		getFilas().get(fila).getColumnas().add(columna, columnaTXT);
	}

	public void addlementoAFila(DatoColumnaTXT columnaTXT, int fila)
	{
		if(getFilas() == null)
			setFilas(new ArrayList<FilaTXT>());
		
		if(getFilas().isEmpty())
			getFilas().add(fila, new FilaTXT());

		if(getFilas().size()-1 < fila)
			getFilas().add(fila, new FilaTXT());

		if(getFilas().get(fila).getColumnas() == null)
			getFilas().get(fila).setColumnas(new ArrayList<DatoColumnaTXT>());
		
		getFilas().get(fila).getColumnas().add(columnaTXT);
	}

	public void llenarArchivo() throws Exception
	{
		try
		{
			if(getFilas() != null && !getFilas().isEmpty())
			{
				FileOutputStream fileOutputStream = new FileOutputStream(archivo);
				
				for(FilaTXT filaTXT : getFilas())
				{
					filaTXT.armarFilaString();
//					System.out.println(filaTXT.getFilaString());
//					System.out.println(filaTXT.getFilaString().length());
					fileOutputStream.write((filaTXT.getFilaString()+"\n").getBytes());					
				}
				
				fileOutputStream.close();
			}
		}
		catch(Exception e)
		{
			Logger.getLogger(ArchivoTXT.class.getName()).log(Level.SEVERE, "problema llenando archivo ", e);
			throw new Exception("");
		}
		
		
	}
	public java.io.File getArchivo() {
		return archivo;
	}
	public void setArchivo(java.io.File archivo) {
		this.archivo = archivo;
	}
}
